home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HamCall (October 1991)
/
HamCall (Whitehall Publishing)(1991).bin
/
bcast
/
bcstcble
/
dbconv.bas
< prev
next >
Wrap
BASIC Source File
|
1990-10-14
|
4KB
|
108 lines
10 REM --------------------------------------
20 REM D E C I B E L C O N V E R S I O N
30 REM --------------------------------------
40 REM
50 CLEARW 2:REM CLEAR SCREEN
60 PRINT "═════════════════════════════════════════════════════════════"
70 PRINT " D E C I B E L C O N V E R S I O N P R O G R A M "
80 PRINT "═════════════════════════════════════════════════════════════"
90 CL$ = " ":REM Clear Line
100 PRINT "Value Known? -";CHR$(16);
105 PRINT" VOLTAGE- ";:PRINT"CURRENT- ";PRIN "POWER- ";
107 PRINT"DECIBELS"
110 PRINT "Choose One <?>";:INPUT;A$
120 IF LEFT$(A$,1) = "V" OR LEFT$(A$,1) = "v" THEN GOTO 300
130 IF LEFT$(A$,1) = "C" OR LEFT$(A$,1) = "c" THEN GOTO 400
140 IF LEFT$(A$,1) = "P" OR LEFT$(A$,1) = "p" THEN GOTO 500
150 IF LEFT$(A$,1) = "D" OR LEFT$(A$,1) = "d" THEN GOTO 600
160 GOTO 110
170 REM
180 REM --- FIND ANTILOG OF NUMBER ---
190 REM
200 IF NUMBER > 38.2 THEN PRINT "INCORRECT ENTRY" : GOTO 910
210 ANTILOG = 10 ^ NUMBER
220 RETURN
230 REM
240 REM --- FIND COMMON LOGARITHM ---
250 REM
260 IF NUMBER <= 0 THEN 500
270 LOGARITHM = LOG(NUMBER) / LOG(10)
280 RETURN
290 REM
300 REM --- VOLTAGE KNOWN ---
310 REM
320 INPUT "INPUT VOLTAGE = ",E1
330 INPUT "OUTPUT VOLTAGE = ",E2
340 NUMBER = E2 / E1
350 GOSUB 240
360 DB = 20 * LOGARITHM
370 GOSUB 860
380 GOTO 910
390 REM
400 REM --- CURRENT KNOWN ---
410 REM
420 INPUT "INPUT CURRENT = ",I1
430 INPUT "OUTPUT CURRENT = ",I2
440 NUMBER = I2 / I1
450 GOSUB 240
460 DB = 20 * LOGARITHM
470 GOSUB 860
480 GOTO 910
490 REM
500 REM --- POWER KNOWN ---
510 REM
520 INPUT "INPUT POWER = ",P1
530 INPUT "OUTPUT POWER = ",P2
540 NUMBER = P2 / P1
550 GOSUB 240
560 DB = 10 * LOGARITHM
570 GOSUB 860
580 GOTO 910
590 REM
600 REM --- DECIBELS KNOWN ---
610 REM
620 PRINT "VALUES KNOWN:"
630 PRINT "<1> - DB and INPUT VOLTAGE"
640 PRINT "<2> - DB and OUTPUT VOLTAGE"
650 PRINT "<3> - DB and INPUT CURRENT"
660 PRINT "<4> - DB and OUTPUT CURRENT"
670 PRINT "<5> - DB and INPUT POWER"
680 PRINT "<6> - DB and OUTPUT POWER"
690 PRINT "<?> - CHOOSE ONE" :INPUT;A$
700 A = VAL(A$) : IF A < 1 OR A > 6 THEN GOTO 690
710 FOR I = 9 TO 23 STEP 2 :PRINT CL$ : NEXT I
720 ON A GOTO 730, 740, 750, 760, 770, 780
730 GOSUB 790:INPUT"INPUT VOLTAGE = ",E1
735 NUMBER=DB/20:GOSUB 180:E2=ANTILOG*E1:RATIO=E2/E1
737 PRINT "OUTPUT VOLTAGE=";E2:PRINT"VOLTAGE RATIO = ";RATIO:GOTO 910
740 GOSUB 790:INPUT "OUTPUT VOLTAGE = ",E2:NUMBER=DB/20:GOSUB 180
745 E1=E2/ANTILOG:RATIO=E2/E1:PRINT"INPUT VOLTAGE=";E1
747 PRINT"VOLTAGE RATIO = ";RATIO:GOTO 910
750 GOSUB 790:INPUT"INPUT CURRENT = ",I1:NUMBER=DB/20:GOSUB 180
755 I2=ANTILOG*I1:RATIO=I2/I1:PRINT"OUTPUT CURRENT=";I2
757 PRINT"CURRENT RATIO = ";RATIO:GOTO 910
760 GOSUB 790:INPUT"OUTPUT CURRENT = ",I2:NUMBER=DB/20:GOSUB 180
765 I1=I2/ANTILOG:RATIO=I2/I1:PRINT"INPUT CURRENT = ";I1
767 PRINT"CURRENT RATIO = ";RATIO:GOTO 910
770 GOSUB 790:INPUT "INPUT POWER = ",P1:NUMBER=DB/10:GOSUB 180
775 P2=ANTILOG*P1:RATIO=P2/P1:PRINT"OUTPUT POWER = ";P2
777 PRINT"POWER RATIO = ";RATIO:GOTO 910
780 GOSUB 790:INPUT "OUTPUT POWER = ",P2:NUMBER=DB/10:GOSUB 180
785 P1=P2/ANTILOG:RATIO=P2/P1:PRINT"INPUT POWER = ";P1
787 PRINT"POWER RATIO = ";RATIO:GOTO 910
790 REM
800 REM --- INPUT DB ---
810 REM
820 INPUT "DECIBEL (enter +/-) = ",DB : RETURN
830 REM
840 REM --- PRINT DB RESULTS ---
850 REM
860 PRINT "DECIBELS = ";: PRINT USING "+###.## dB";DB
870 RETURN
880 REM
890 REM --- CONTINUE OR QUIT ROUTINE ---
900 REM
910 INPUT"PRESS ANY KEY TO CONTINUE OR <Q> TO QUIT";A$
920 IF A$ = "Q" THEN END
930 GOTO 10